package org.Yiran.timetale_re.event;

import net.minecraftforge.eventbus.api.SubscribeEvent;
import net.minecraftforge.fml.common.Mod;
import net.minecraftforge.fml.event.lifecycle.FMLCommonSetupEvent;
import org.Yiran.timetale_re.item.rune.BlankRune;
import org.Yiran.timetale_re.item.rune.base.RuneRegistry;
import org.Yiran.timetale_re.item.rune.type.amplification.LifeRune;
import org.Yiran.timetale_re.item.rune.type.functional.StormRune;
import org.Yiran.timetale_re.item.rune.type.throwable.ThunderRune;

/**
 * 符文注册事件处理器类
 * <p>
 * 该类负责在模组初始化阶段注册所有可用的符文类型。
 * 使用FMLCommonSetupEvent事件确保在正确的初始化阶段进行注册。
 * </p>
 */
@Mod.EventBusSubscriber(modid = "timetale_re", bus = Mod.EventBusSubscriber.Bus.MOD)
public class RuneRegistrationEvent {
    
    // ============================== 符文注册事件处理 ==============================
    
    /**
     * 符文注册事件处理方法
     * <p>
     * 在FML通用设置阶段注册所有符文类型到符文注册表中。
     * 使用enqueueWork确保注册工作在正确的线程中执行。
     * </p>
     * 
     * @param event FML通用设置事件
     */
    @SubscribeEvent
    public static void registerRunes(FMLCommonSetupEvent event) {
        event.enqueueWork(() -> {
            // 注册所有符文类型
            RuneRegistry.registerRune(new StormRune());   // 注册风暴符文
            RuneRegistry.registerRune(new BlankRune());   // 注册空白符文
            RuneRegistry.registerRune(new ThunderRune()); // 注册雷电符文
            RuneRegistry.registerRune(new LifeRune());    // 注册生命符文
        });
    }
}